home *** CD-ROM | disk | FTP | other *** search
/ Business Assistant / Business Assistant.iso / acctg / bf018 / income.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-11-26  |  14.3 KB  |  164 lines

  1. 10  CLEAR,,1536:CLS:FOR I=1 TO 6: PRINT:NEXT:KEY 7, "":KEY 8, "@":ON KEY(7) GOSUB 2900:ON ERROR GOTO 3000
  2. 40  OPEN "B:INCOME.CUR" AS 1:OPEN "INCOME.FIL" AS 3:FIELD 3, 10 AS A$(1), 10 AS A$(2), 10 AS A$(3), 10 AS A$(4), 10 AS A$(5), 10 AS A$(6)
  3. 43  IF LOF(3)/128=0 THEN CLS:PRINT:PRINT TAB(10) "CATEGORY OF INCOME FILE MUST BE CREATED":PRINT:CAT$(2)="TAXABLE":GOTO 4030
  4. 50  PRINT "         INCOME FILE-----PRESS KEY TO CHOOSE OPTION":PRINT:PRINT TAB(10) "0=OPEN NEW FILE":PRINT:PRINT TAB(10) "A=ADD TO FILE":PRINT:PRINT TAB(10) "R=READ, REVISE OR PRINT FILE":PRINT:PRINT TAB(10) "E=END MONTH--TURN ON PRINTER":PRINT
  5. 100  PRINT TAB(10) "M=RETURN TO MENU":PRINT:PRINT TAB(10) "H=READ OR PRINT OLD FILE":PRINT:PRINT TAB(10) "C=REVISE CATEGORY OF INCOME FILE"
  6. 110  DL$="$$######.##":MODE$=CHR$(27)+CHR$(45)+CHR$(1)+CHR$(27)+CHR$(71)+CHR$(27)+CHR$(78)+CHR$(6):DEFDBL A-Z:DEFINT N,I,J:XMOD$=CHR$(27)+CHR$(45)+CHR$(0)+CHR$(27)+CHR$(72):DIM T(20), YTD(20), AM(20), J(20), INC$(20):GET 3,1
  7. 174  FOR N=1 TO 6:CAT$(N)=A$(N):NEXT:IF LEFT$(CAT$(2),7)="TAXABLE" THEN JTAX=1
  8. 176  IF CAT$(4)=STRING$(10,32) THEN NCAT4=1
  9. 177  IF CAT$(5)=STRING$(10,32) THEN NCAT5=1
  10. 178  CLOSE 3
  11. 180  X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):POKE 23, (PEEK(23) OR 32):IF SKIP% THEN X$="E"
  12. 195  IF X$="A" THEN FL$="INCOME.CUR":GOSUB 30210 ELSE IF X$="E" THEN FL$="INCOME.TOT":GOSUB 30210:FL$="CHECKING.ACC":GOSUB 30210:FL$="CHKDSC":GOSUB 30210
  13. 200  IF X$="O" THEN 210 ELSE IF X$="A" THEN CLS:GOTO 360 ELSE IF X$="R" THEN 1070 ELSE IF X$="E" THEN EOM%=1:GOTO 1140 ELSE IF X$="M" THEN RUN "BKPG.BAS" ELSE IF X$="H" THEN 1061 ELSE IF X$="C" THEN 4000 ELSE 180
  14. 210  CLS:FOR I=1 TO LOF(1)/128:GET 1,I:NEXT:IF LOF(1)/128=0 THEN 260 ELSE 240
  15. 240  BEEP:COLOR 31:PRINT "FILE ALREADY OPENED FOR MONTH OR LAST MONTH'S FILE NOT CLOSED OUT":COLOR 7:CLEAR:GOTO 40
  16. 260  PRINT "MONTH  ";:GOSUB 20050:MON$=INPT$:PRINT "YEAR  ";:INLN%=4:NBR=1:GOSUB 20050:YR$=INPT$:IF JTAX=0 THEN 290 ELSE PRINT "SALES TAX RATE AS __%  ";
  17. 285  INLN%=8:GOSUB 20050:TR=VAL(INPT$):NBR=0
  18. 290  CODE%=1:FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:LSET M$=MON$:LSET Y$=YR$:LSET H$=MKD$(TR):PUT 1,CODE%:GOTO 410
  19. 360  FOR I=1 TO LOF(1)/128:GET 1,I:NEXT:IF LOF(1)/128=0 THEN 390 ELSE 410
  20. 390  BEEP:COLOR 31:PRINT "FILE NOT OPENED FOR MONTH":COLOR 7:CLEAR:GOTO 40
  21. 410  GET 1, LOF(1)/128:CODE%=LOF(1)/128
  22. 430  PRINT "CHOOSE":PRINT TAB(10) "R=REGULAR INCOME":PRINT TAB(10) "M=MISCELLANEOUS INCOME":PRINT TAB(10) "O=RETURN TO OPTIONS"
  23. 470  X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF X$="M" THEN 490 ELSE IF X$="R" THEN 700 ELSE IF X$="O" THEN 10 ELSE 470
  24. 490  CODE%=CODE%+1:GOSUB 510:GOTO 430
  25. 510  PRINT "DATE AS xx/xx/xx  ";:INLN%=8:GOSUB 20050:ND$=INPT$:PRINT "FROM              ";:INLN%=15:GOSUB 20050:FR$=INPT$:PRINT "AMOUNT            ";:NBR=1:GOSUB 20050:AM=VAL(INPT$):PRINT "DEPOSIT           ";:GOSUB 20050:DP=VAL(INPT$):NBR=0:MS=AM
  26. 560  PRINT "TYPE OF INCOME  ";:LXN%=CSRLIN:IF NCAT4<>1 THEN PRINT:PRINT "ENTER  1   IF "+CAT$(4)
  27. 562  IF NCAT5<>1 THEN PRINT:PRINT "ENTER  2   IF "+CAT$(5)
  28. 563  IF NCAT4<>1 AND NCAT5<>1 THEN PRINT:PRINT "OR ENTER TYPE     "; ELSE LOCATE LXN%,19
  29. 565  INLN%=30:GOSUB 20050:TP$=INPT$:IF VAL(TP$)=1 THEN TP$=CAT$(4) ELSE IF VAL(TP$)=2 THEN TP$=CAT$(5)
  30. 570  FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$, 5 AS X$:LSET D$=ND$:LSET B$=MKD$(DP):LSET A$=MKD$(AM):LSET F$=FR$:LSET S$=TP$:LSET X$="M":PRINT "CHOOSE":PRINT TAB(10) "E=DATA OK, ENTER ON FILE":PRINT TAB(10) "C=CHANGE DATA"
  31. 660  X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF X$="E" THEN 680 ELSE IF X$="C" THEN 510 ELSE 660
  32. 680  PUT 1, CODE%:RETURN
  33. 700  CODE%=CODE%+1:GOSUB 720:GOTO 430
  34. 720  PRINT "DATE AS XX/XX/XX  ";:INLN%=8:GOSUB 20050:ND$=INPT$:PRINT "DEPOSIT           ";:NBR=1:GOSUB 20050:DP=VAL(INPT$):PRINT "TOTAL CASH        ";:GOSUB 20050:AM=VAL(INPT$):PRINT "TOTAL CHARGE      ";:INLN%=8:GOSUB 20050:CHG=VAL(INPT$)
  35. 760  PRINT CAT$(1)+"        ";:INLN%=8:GOSUB 20050:XT=VAL(INPT$):PRINT CAT$(2)+"        ";:INLN%=8:GOSUB 20050:TX=VAL(INPT$):PRINT CAT$(3)+"        ";:INLN%=8:GOSUB 20050:RX=VAL(INPT$):PRINT "RECEIVED ON ACCT. ";
  36. 795  INLN%=8:GOSUB 20050:RA=VAL(INPT$):NBR=0:TAX=AM+CHG-XT-TX-RX-RA
  37. 805  IF JTAX<>1 AND ABS(TAX)>0.005 THEN BEEP:COLOR 0,7:PRINT "ERROR--TOTAL OF CATEGORIES IS NOT EQUAL TO TOTAL CASH+CHARGE--RECHECK AMOUNTS   AND REENTER":COLOR 7,0:PRINT:GOTO 720 ELSE IF JTAX<>1 THEN 900
  38. 810  FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:GET 1,1:TR=CVD(H$):IF TAX<0.01 AND TX<0.2 THEN 880
  39. 850  IF TAX>0.0108*TR*TX OR TAX<0.0095*TR*TX THEN 860 ELSE 880
  40. 860  PRINT "TAX=";:PRINT USING DL$;TAX:PRINT "% OF TAXABLE SALES=";:PRINT USING "##.##";(100*TAX)/TX:BEEP:COLOR 0,7:PRINT "ERROR--TAX IS OUT OF RANGE--RECHECK AMOUNTS AND REENTER DATA":COLOR 7,0:GOTO 720
  41. 880  PRINT "TAX=";:PRINT USING "$$####.##";TAX
  42. 900  PRINT "CHOOSE":PRINT TAB(10) "E=DATA OK, ENTER ON FILE":PRINT:PRINT TAB(10) "C=CHANGE DATA":PRINT:PRINT TAB(10) "O=DO NOT ENTER DATA, RETURN TO OPTIONS"
  43. 930  X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF X$="E" THEN 950 ELSE IF X$="C" THEN PRINT:PRINT TAB(10) "REENTER":PRINT:GOTO 720 ELSE IF X$="O" THEN 10 ELSE 930
  44. 950  FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 8 AS E$, 8 AS N$, 8 AS T$, 8 AS R$, 8 AS G$, 8 AS X$:LSET D$=ND$:LSET B$=MKD$(DP):LSET A$=MKD$(AM):LSET E$=MKD$(CHG):LSET N$=MKD$(XT):LSET T$=MKD$(TX):LSET R$=MKD$(RX):LSET G$=MKD$(RA):LSET X$=MKD$(TAX)
  45. 1050  PUT 1, CODE%:TAX=0:LSET X$=MKD$(TAX):RETURN
  46. 1061  OLD%=1:CLS:COLOR 0,7:PRINT "     INSERT DISK CONTAINING THE FILE TO BE READ IN DRIVE  B ":COLOR 7,0:PRINT:PRINT:PRINT "ENTER MONTH OF INCOME FILE TO BE READ   ";:GOSUB 20050:OMON$=INPT$:FILE$="B:"+"INCOME."+LEFT$(OMON$,3):CLOSE 1:OPEN FILE$ AS 1
  47. 1070  CLS:PRINT:PRINT TAB(10) "R=READ ONLY":PRINT:PRINT TAB(10) "P=READ AND PRINT"
  48. 1090  PRT$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF PRT$="R" OR PRT$="P" THEN CLS:GOTO 1100 ELSE 1090
  49. 1100  COLOR 7,0:CLS:COLOR 0,7:PRINT:PRINT: PRINT "  PRESS  F8  TO READ RECORDS IN SEQUENCE. PRESS  F7  TO STOP AT ANY POINT.              PRESS   F8  WHEN READY TO CONTINUE READING.":COLOR 7,0: PRINT:PRINT
  50. 1110  COLOR 0,7:PRINT "      IF REVISING FILE, WRITE DOWN RECORD NUMBERS TO BE CHANGED.": PRINT:PRINT: COLOR 7,0
  51. 1120  X$=INKEY$:IF X$<>"@" THEN 1120 ELSE KEY(7) ON
  52. 1135  IF NOT EOM% THEN 1149
  53. 1140  FIELD 1, 8 AS D$:GET 1, LOF(1)/128:CLS:PRINT:PRINT TAB(10) "DATE OF LAST ENTRY IN FILE IS "+D$:PRINT:PRINT TAB(10) "C=CONTINUE END MONTH PROCEDURE":PRINT:PRINT TAB(10) "O=RETURN TO OPTIONS"
  54. 1144  XX$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF XX$="O" THEN 10 ELSE IF XX$<>"C" THEN 1144
  55. 1149  GET 1,1:FIELD 1, 10 AS M$, 5 AS Y$:CLS:PRINT "       "+M$;:PRINT "   "+Y$;:PRINT "    INCOME FILE":PRINT
  56. 1190  PRINT "     CASH      CHARGE      ";:FOR N=1 TO 3:PRINT CAT$(N);:NEXT:PRINT " REC ON ACCT.   ";:IF JTAX THEN PRINT "TAX":PRINT ELSE PRINT:PRINT
  57. 1199  IF REV%=1 THEN 1430
  58. 1200  IF PRT$="R" THEN 1290
  59. 1210  LPRINT CHR$(15);:WIDTH "LPT1:",132:LPRINT MODE$;:FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:LPRINT "          "+M$;:LPRINT "   "+Y$;:LPRINT "    INCOME FILE":LPRINT CHR$(27)CHR$(64)CHR$(15)
  60. 1280  LPRINT CHR$(27)CHR$(45)CHR$(1);"          DATE        DEPOSIT         CASH       CHARGE      ";:LPRINT " ";:FOR I=1 TO 3:LPRINT CAT$(I);:IF I=2 THEN LPRINT "  "; ELSE LPRINT "   ";
  61. 1287  NEXT:LPRINT "REC ON ACCT.   ";:IF JTAX THEN LPRINT "TAX   REC.NO." ELSE LPRINT "   REC.NO."
  62. 1289  LPRINT CHR$(27)CHR$(45)CHR$(0)
  63. 1290  TDP=0:TAM=0:TCHG=0:TXT=0:TTX=0:TRX=0:TMS=0:TRA=0:TTAX=0:N=0:FOR I=2 TO LOF(1)/128:CODE%=I:GET 1, CODE%:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$,5 AS X$:IF LEFT$(X$,1)="M" THEN N=N+1:J(N)=CODE%:GOTO 1480 ELSE 1345
  64. 1345  FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 8 AS E$, 8 AS N$, 8 AS T$, 8 AS R$, 8 AS G$, 8 AS X$:TDP=TDP+CVD(B$):TAM=TAM+CVD(A$):TCHG=TCHG+CVD(E$):TXT=TXT+CVD(N$):TTX=TTX+CVD(T$):TRX=TRX+CVD(R$):TRA=TRA+CVD(G$):TTAX=TTAX+CVD(X$)
  65. 1400  PRINT "        "+D$+"  DEPOSIT";:PRINT USING DL$;CVD(B$);:PRINT "    REC.NO. " CODE%
  66. 1430  PRINT USING DL$;CVD(A$);CVD(E$);CVD(N$);CVD(T$);CVD(R$);CVD(G$);:IF JTAX THEN PRINT USING DL$;CVD(X$) ELSE PRINT
  67. 1440  IF REV$="R" THEN 2470 ELSE IF PRT$="R" THEN 1480
  68. 1450  LPRINT "         "+D$;:LPRINT USING"$$########.##";CVD(B$);CVD(A$);CVD(E$);CVD(N$);CVD(T$);CVD(R$);CVD(G$);:IF JTAX THEN LPRINT USING DL$;CVD(X$);
  69. 1470  LPRINT "     "CODE%
  70. 1480  NEXT:NM=N:PRINT:PRINT "    MISCELLANEOUS INCOME":PRINT:PRINT "  DATE     DEPOSIT   AMT.RECD.    FROM            TYPE OF INCOME   ":IF PRT$="R" THEN 1560
  71. 1530  LPRINT MODE$:LPRINT "          MISCELLANEOUS INCOME":LPRINT:LPRINT "          DATE       DEPOSIT   AMT.RECD.    FROM             TYPE OF INCOME                 REC.NO.":LPRINT XMOD$;CHR$(15):IF NM=0 THEN PRINT "     NONE":LPRINT "       NONE"
  72. 1560  FOR N=1 TO NM:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$,5 AS X$:GET 1,J(N):PRINT "REC.NO. ";:PRINT J(N):PRINT D$;:PRINT USING DL$;CVD(B$);:PRINT USING DL$;CVD(A$);:PRINT "  "+F$+"   "+S$;
  73. 1680  IF CAT$(4)=LEFT$(S$,10) THEN TINT=TINT+CVD(A$) ELSE IF CAT$(5)=LEFT$(S$,10) THEN TREN=TREN+CVD(A$) ELSE INC$(N)=S$:AM(N)=CVD(A$)
  74. 1690  TM=TM+CVD(A$):TDP=TDP+CVD(B$):TAM=TAM+CVD(A$):IF PRT$="R" THEN 1760
  75. 1720  LPRINT TAB(10) D$;:LPRINT USING DL$;CVD(B$);CVD(A$);:LPRINT "   "+F$+"   "+S$+"    ";:LPRINT J(N)
  76. 1760  NEXT:IF EOM% THEN 2020
  77. 1775  GET 1,LOF(1)/128:PRINT:COLOR 0,7:PRINT "        TOTALS TO DATE  ";:PRINT D$:COLOR 7,0:PRINT:PRINT "      TOTAL DEPOSITS";:PRINT USING DL$;TDP:PRINT "     CASH      CHARGE      ";:FOR N=1 TO 3:PRINT CAT$(N);:NEXT
  78. 1818  PRINT " REC ON ACCT.  ";:IF JTAX THEN PRINT "TAX":PRINT ELSE PRINT:PRINT
  79. 1820  PRINT USING DL$;TAM;TCHG;TXT;TTX;TRX;TRA;:IF JTAX THEN PRINT USING DL$;TTAX ELSE PRINT
  80. 1830  PRINT:PRINT "        TOTAL SALES";:PRINT USING DL$;TXT+TTX+TRX+TTAX:IF PRT$="R" THEN 1920
  81. 1860  LPRINT MODE$:LPRINT "  TOTALS TO DATE":LPRINT:LPRINT CHR$(27)CHR$(45)CHR$(1);"          DATE        DEPOSIT         CASH       CHARGE      ";:LPRINT " ";:FOR N=1 TO 3:LPRINT CAT$(N);:IF N=2 THEN LPRINT "  "; ELSE LPRINT "   ";
  82. 1877  NEXT:LPRINT "REC ON ACCT.  ";:IF JTAX THEN LPRINT "TAX" ELSE LPRINT
  83. 1879  LPRINT CHR$(27)CHR$(45)CHR$(0):LPRINT TAB(10) D$;:LPRINT USING "$$########.##";TDP;TAM;TCHG;TXT;TTX;TRX;TRA;:IF JTAX THEN LPRINT USING DL$;TTAX ELSE LPRINT
  84. 1900  LPRINT:LPRINT "        TOTAL SALES  ";:LPRINT USING DL$;TXT+TTX+TRX+TTAX
  85. 1920  PRINT:PRINT "CASH RECONCILIATION        ";:IF TDP-TAM=0 THEN PRINT "DIFFERENCE=NONE" ELSE IF TDP-TAM<0 THEN PRINT "SHORTAGE";USING DL$;TDP-TAM ELSE PRINT "CASH OVER";USING DL$;TDP-TAM
  86. 1940  IF PRT$="R" THEN 1965
  87. 1950  LPRINT:LPRINT "CASH RECONCILIATION--------";:IF TDP-TAM=0 THEN LPRINT "DIFFERENCE=NONE" ELSE IF TDP-TAM<0 THEN LPRINT "SHORTAGE";USING DL$;TDP-TAM ELSE LPRINT "CASH OVER";USING DL$;TDP-TAM
  88. 1964  LPRINT CHR$(12)
  89. 1965  IF OLD% THEN KEY(7) OFF:PRINT:PRINT "   PRESS  F8  TO RETURN TO OPTIONS. " ELSE 1970
  90. 1966  Z$=INKEY$:IF Z$<>"@" THEN 1966 ELSE 10
  91. 1970  PRINT:PRINT:PRINT TAB(10) "R=REVISE FILE":PRINT TAB(10) "O=RETURN TO OPTIONS":PRINT TAB(10) "M=RETURN TO MENU":KEY(7) OFF
  92. 2000  REV$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF REV$="R" THEN FL$="INCOME.CUR":GOSUB 30210:GOTO 2430 ELSE IF REV$="O" THEN 10 ELSE IF REV$="M" THEN RUN "BKPG.BAS" ELSE 2000
  93. 2020  OPEN "B:INCOME.TOT" AS 2:LPRINT CHR$(12);:IF LOF(2)/128=0 THEN 2050 ELSE 2110
  94. 2050  FOR N=1 TO 15:YTD(N)=0:FIELD 2, 12 AS Q$:LSET Q$=MKD$(YTD(N)):PUT 2, N:NEXT
  95. 2110  PRINT:PRINT TAB(10) "INCOME TOTALS":PRINT:GET 1,1:FIELD 1, 10 AS M$, 5 AS Y$, 8 AS H$:PRINT TAB(40) M$ SPC(10) "YTD":LPRINT MODE$:LPRINT "          INCOME TOTALS":LPRINT
  96. 2160  LPRINT TAB(62) M$;Y$ SPC(7) "YTD" SPC(10) "REC.NO.":LPRINT CHR$(15);:LPRINT XMOD$:CLOSE 4:BKUP=0:OPEN "B:CHECKING.ACC" AS 4:FIELD 4, 12 AS DD$:LSET DD$=MKD$(TDP):PUT 4, 3:CLOSE 4
  97. 2170  T(1)=TDP:T(2)=TAM:T(3)=TCHG:T(4)=TXT:T(5)=TTX:T(6)=TRX:T(7)=TRA:T(8)=TTAX:T(9)=TINT:T(10)=TREN:T(11)=TM-TINT-TREN:T(12)=TXT+TTX+TRX+TTAX:T(13)=T(12)-TTX:T(14)=CVD(H$)*TTX/100:T(15)=TDP-TAM:DLX$="$$##########.##":FOR N=1 TO 15:CODE%=N
  98. 2190  FIELD 2, 12 AS Q$:IF N=1 THEN LPRINT "DEPOSITS";ELSE IF N=2 THEN LPRINT "CASH RECEIVED"; ELSE IF N=3 THEN LPRINT "CHARGE SALES";ELSE IF N=4 THEN LPRINT CAT$(1); ELSE IF N=5 THEN LPRINT CAT$(2);
  99. 2210  IF N=6 THEN LPRINT CAT$(3); ELSE IF N=7 THEN LPRINT"RECEIVED ON ACCOUNT";ELSE IF N=8 AND JTAX=1 THEN LPRINT"SALES TAX COLLECTED";ELSE IF N=9 AND NCAT4<>1 THEN LPRINT CAT$(4); ELSE IF N=10 AND NCAT5<>1 THEN LPRINT CAT$(5);
  100. 2220  IF N=11 THEN LPRINT "OTHER INCOME"; ELSE IF N=12 THEN LPRINT "TOTAL SALES";ELSE IF JTAX=1 AND N=13 THEN LPRINT "TAX EXEMPT SALES";ELSE IF JTAX=1 AND N=14 THEN LPRINT "SALES TAX DUE";ELSE IF N=15 THEN LPRINT "CASH OVER OR UNDER (-)";
  101. 2226  IF NCAT4 AND N=9 THEN 2290 ELSE IF NCAT5 AND N=10 THEN 2290
  102. 2240  GET 2, N:IF SKIP% THEN YTD(N)=CVD(Q$) ELSE IF N=15 THEN YTD(N)=YTD(1)-YTD(2) ELSE YTD(N)=CVD(Q$)+T(N)
  103. 2255  IF N=8 AND JTAX=0 THEN 2290 ELSE IF JTAX=0 THEN IF N=13 OR N=14 THEN 2290
  104. 2260  IF NCAT4 AND N=9 THEN 2290 ELSE IF NCAT5 AND N=10 THEN 2290
  105. 2270  LPRINT SPC(60-LPOS(X)) USING DLX$;T(N);YTD(N);:LPRINT SPC(10) CODE%:LPRINT
  106. 2290  LSET Q$=MKD$(YTD(N)):PUT 2, CODE%:NEXT:LPRINT CHR$(12)
  107. 2410  FL$="INCOME."+LEFT$(M$,3):GOSUB 30210:CLOSE 1:NAME "B:INCOME.CUR" AS "B:"+FL$:CLS:PRINT
  108. 2420  RUN "BKPG.BAS"
  109. 2430  CLS:PRINT:PRINT TAB(10) "R=REVISE REGULAR INCOME FILE":PRINT:PRINT TAB(10) "M=REVISE MISC. INCOME FILE
  110. 2445  TYP$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF TYP$="R" THEN 2460 ELSE IF TYP$="M" THEN 2500 ELSE 2445
  111. 2460  PRINT "REC.NO. TO BE CHANGED  ";:NBR=1:GOSUB 20050:CODE%=VAL(INPT$):NBR=0:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 8 AS E$, 8 AS N$, 8 AS T$, 8 AS R$, 8 AS G$, 8 AS X$
  112. 2462  GET 1,CODE%:PRINT D$:PRINT " DEPOSIT ";:PRINT USING DL$;CVD(B$);:PRINT " REC.NO ";:PRINT CODE%:REV%=1:GOTO 1190
  113. 2470  GOSUB 720:PRINT "REVISE ANOTHER? Y/N"
  114. 2490  X$=INKEY$:DEF SEG=64:POKE 23, (PEEK(23) OR 64):IF X$="Y" THEN 2430 ELSE IF X$="N" THEN 10 ELSE 2490
  115. 2500  PRINT "REC.NO. TO BE CHANGED  ";:NBR=1:GOSUB 20050:CODE%=VAL(INPT$):NBR=0:FIELD 1, 8 AS D$, 10 AS B$, 10 AS A$, 15 AS F$, 30 AS S$, 5 AS X$:GET 1,CODE%:PRINT "  DATE     DEPOSIT   AMT.RECD.    FROM            TYPE OF EXPENSE "
  116. 2503  PRINT D$;:PRINT USING DL$;CVD(B$);CVD(A$);:PRINT "  "+F$+"   "+S$:GOSUB 510:PRINT "REVISE ANOTHER? Y/N"
  117. 2530  X$=INKEY$:IF X$="Y" THEN 2430 ELSE IF X$="N" THEN 10 ELSE 2530
  118. 2540  CLS
  119. 2550  PRINT "REC.NO. TO BE CHANGED  ";:NBR=1:GOSUB 20050:CODE%=VAL(INPT$):NBR=0:N=CODE%:INPUT "NEW AMOUNT  ";:NBR=1:INLN%=12:GOSUB 20050:YTD(N)=VAL(INPT$):NBR=0:FIELD 2, 12 AS Q$:LSET Q$=MKD$(YTD(N)):PUT 2,CODE%:GOSUB 2640
  120. 2620  PRINT "REVISE ANOTHER? Y/N"
  121. 2630  X$=INKEY$:IF X$="Y" THEN 2540 ELSE IF X$="N" THEN 2320 ELSE 2630
  122. 2640  FOR N=1 TO 20:GET 2, N:T(N)=CVD(Q$):NEXT:IF ABS(T(2)+T(3)-T(12)-T(7)-T(9)-T(10)-T(11))>0.005 THEN COLOR 0,7:PRINT "      ERROR IN REC.NO. 2,3,12,7,9,10,OR 11":COLOR 7,0:GOTO 2540
  123. 2660  IF ABS(T(1)-T(2)-T(15))>0.005 THEN COLOR 0,7:PRINT "      ERROR IN REC.NO. 1,2,OR 15":COLOR 7,0:GOTO 2550
  124. 2670  IF ABS(CVD(H$)*T(5)/100-T(14))>0.005 THEN COLOR 0,7:PRINT "      ERROR IN REC.NO. 5 OR 14":COLOR 7,0:GOTO 2550
  125. 2680  IF ABS(T(4)+T(5)+T(6)+T(8)-T(12))>0.005 THEN COLOR 0,7:PRINT "      ERROR IN REC.NO. 4,5,6,8,OR 12":COLOR 7,0:GOTO 2550
  126. 2690  IF ABS(T(12)-T(13)-T(5))>0.005 THEN COLOR 0,7:PRINT "      ERROR IN REC.NO. 5,12,OR 13":COLOR 7,0:GOTO 2550
  127. 2700  GOTO 2620
  128. 2900  KEY(7) OFF:Z$=INKEY$:IF Z$<>"@" THEN 2900 ELSE DEF SEG:POKE 106,0:KEY(7) ON:RETURN
  129. 3000  IF ERR=71 THEN COLOR 0,7:PRINT "     FILE DISK NOT IN DRIVE B OR PROGRAM DISK NOT IN DRIVE A OR  A DRIVE DOOR IS OPEN.  CORRECT PROBLEM AND PRESS F8 WHEN READY.    ":GOTO 3050
  130. 3010  IF ERR=24 OR ERR=27 THEN COLOR 0,7:PRINT "     PRINTER NOT ON OR OUT OF PAPER SET TOP OF PAGE AND TURN ON PRINTER.             PRESS F8 WHEN READY     ":GOTO 3050
  131. 3030  PRINT " AN UNDEFINED ERROR HAS OCCURRED":PRINT:PRINT " PRESS  F8  TO RETURN TO OPTIONS."
  132. 3040  ER$=INKEY$:IF ER$<>"@" THEN 3040 ELSE 10
  133. 3050  ER$=INKEY$:IF ER$<>"@" THEN 3050 ELSE DEF SEG:POKE 106,0:COLOR 7,0:CLS:RESUME
  134. 4000  CLS:OPEN "INCOME.FIL" AS 3:FIELD 3, 10 AS A$(1), 10 AS A$(2), 10 AS A$(3), 10 AS A$(4), 10 AS A$(5), 10 AS A$(6)
  135. 4030  LOCATE 4,11:PRINT "THERE ARE 3 CATEGORIES OF REGULAR INCOME (USUALLY CASH REGISTER DEPARTMENTS)":LOCATE 6,11:PRINT "THE 2ND CATEGORY IS TAXABLE SALES. NO OTHER CATEGORY MAY INCLUDE TAXABLE SALES."
  136. 4035  LOCATE 8,11:PRINT "IF THERE WILL BE NO TAXABLE SALES, THIS CATEGORY CAN BE CHANGED.":LOCATE 10,11:PRINT "DO NOT USE TAX AS A CATEGORY. IT IS A FIXED CATEGORY IF THERE IS TAXABLE SALES"
  137. 4040  LOCATE 12,11:PRINT "TO LEAVE CATEGORY AS IS, JUST PRESS ENTER.":PRINT STRING$(79,45):LOCATE 15,27:PRINT "REGULAR INCOME CATEGORIES":FOR N=1 TO 3:LOCATE CSRLIN+1,11:PRINT "CATEGORY "N"     "+CAT$(N);:LOCATE CSRLIN,28:INLN%=8:GOSUB 20050:NEXT
  138. 4100  ALOC=15:FOR N=1 TO 3:ALOC=ALOC+2:FOR J=28 TO 35:TCAT$(N)=TCAT$(N)+CHR$(SCREEN(ALOC,J)):NEXT:NEXT:CLS:LOCATE 4,11:PRINT " THERE ARE 2 CATAGORIES OF MISCELLANEOUS INCOME THAT WILL BE TOTTALLED."
  139. 4210  LOCATE 6,11: PRINT "ALL OTHER MISC. INCOME WILL BE TOTALLED AS MISCELLANEOUS":LOCATE 8,11:PRINT "USE COMMONLY RECEIVED CATEGORIES e.g. RENTS, INTEREST, ETC.":LOCATE 10,11:PRINT "TO LEAVE CATEGORY AS IS, JUST PRESS ENTER":PRINT STRING$(79,45)
  140. 4240  LOCATE 15,25:PRINT "MISCELLANEOUS INCOME CATEGORIES":LOCATE 17,11:PRINT "CATEGORY 1       "+CAT$(4):LOCATE 17,28:INLN%=8:GOSUB 20050:LOCATE 19,11:PRINT "CATEGORY 2       "+CAT$(5):LOCATE 19,28:INLN%=8:GOSUB 20050
  141. 4290  ALOC=15:FOR N=1 TO 2:ALOC=ALOC+2:FOR J=28 TO 35:TCAT$(N+3)=TCAT$(N+3)+CHR$(SCREEN(ALOC,J)):NEXT:NEXT:TCAT$(6)="MISCELLANEOUS":FOR N=1 TO 6:LSET A$(N)=TCAT$(N):NEXT:PUT 3,1:CLOSE 3:GOTO 10
  142. 20050  INPT$="":INPOS%=POS(0):DEF SEG=64:POKE 23, (PEEK(23) OR 64):POKE 23, (PEEK(23) OR 32):LOCATE,,1,6,7:IF INLN%=0 THEN INLN%=10
  143. 20110  IP$=INKEY$:IF IP$="" THEN 20110
  144. 20130  IF NBR THEN IF ASC(IP$)>57 THEN BEEP:GOTO 20110
  145. 20140  IF NBR THEN IF ASC(IP$)<48 AND ASC(IP$)<>46 THEN IF ASC(IP$)<>8 AND ASC(IP$)<>13 THEN IF ASC(IP$)<> 45 THEN BEEP:GOTO 20110
  146. 20150  IF ASC(IP$)=29 THEN BEEP:GOTO 20110
  147. 20155  IF ASC(IP$)=27 THEN 10
  148. 20160  IP$=CHR$(ASC(IP$)+32*(IP$>="a" AND IP$<="z")):IF LEN(INPT$)=INLN% THEN IF ASC(IP$)<>13 AND ASC(IP$)<>8 THEN 20110
  149. 20180  IF ASC(IP$)=13 THEN PRINT:GOTO 20240
  150. 20190  IF ASC(IP$)=8 AND POS(0)=INPOS% THEN 20110
  151. 20200  IF ASC(IP$)=8 THEN GOSUB 20250:GOTO 20110
  152. 20210  INPT$=INPT$+IP$:PRINT IP$;:GOTO 20110
  153. 20240  INLN%=0:RETURN
  154. 20250  IF INPT$="" THEN 20110
  155. 20260  INPT$=LEFT$(INPT$,LEN(INPT$)-1):LOCATE CSRLIN,POS(0)-1:PRINT " ";:LOCATE CSRLIN,POS(0)-1:RETURN
  156. 30210  IF BKUP THEN 30220 ELSE OPEN "B:BACKUP.FIL" AS 4:BKUP=1
  157. 30220  FIELD 4, 14 AS A$:IF LOF(4)/128=0 THEN 30280
  158. 30240  FOR N=1 TO LOF(4)/128:GET 4,N:IF FL$+STRING$(14-LEN(FL$),32)=A$ THEN 30300
  159. 30270  NEXT
  160. 30280  LSET A$=FL$:PUT 4, LOF(4)/128+1
  161. 30300  RETURN
  162. 60000  XX$=INKEY$:IF XX$<>"C" THEN 60000
  163. 60010  PRINT "OK"
  164.